
# ifndef __DFX_INPUT_PLUGIN_H__
# define __DFX_INPUT_PLUGIN_H__

# include "dfxPlugin.h"
# include "dfxKeyboard.h"
# include "dfxWindow.h"

namespace DFX
{
    extern "C"
    {
        typedef DFXRESULT(*CREATEKEYBOARD)(Window *w, Keyboard **k);
    }

    class DFX_EXPORT InputPlugin : public Plugin
    {
    private:

        UInt32                  mHandle;
        String                  mDllFile;        
        CREATEKEYBOARD          mCreateKeyboard;

    public:

        InputPlugin(const String &dllFile);
        ~InputPlugin();

        const String& GetDllFile() const
        {
            return mDllFile;
        }

        DFXRESULT CreateKeyboard(Window *w, Keyboard **k);

        DFXRESULT Load();
        DFXRESULT Unload();
    };
}

# endif